package me.zhengjie.modules.quartz.task;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class MineDataParser {

    public static void main(String[] args) {
        // 定义文件路径
        String filePath = "D:\\140525005005028_CDSS_20241014141226.txt";

        // 解析文件
        parseFile(filePath);
    }

    // 文件解析方法
    public static void parseFile(String filePath) {
        File file = new File(filePath);
        
        if (!file.exists()) {
            System.out.println("文件不存在: " + filePath);
            return;
        }

        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;

            // 逐行读取文件内容
            while ((line = br.readLine()) != null) {
                // 每行数据以 "~" 分隔
                String[] entries = line.split("~");
                System.out.println("数据条数：" + entries.length);
                // 解析每一条数据
                for (String entry : entries) {
                    // 以 ";" 分隔字段
                    String[] fields = entry.split(";");

                    // 确保字段数量正确
                    if (fields.length >= 7) {
                        String deviceId = fields[0];          // 设备编码
                        String dataType = fields[1];          // 数据类型
                        String location = fields[2];          // 监控位置
                        String value = fields[3];             // 数据值
                        String unit = fields[4];              // 单位
                        String status = fields[5];            // 状态码
                        String timestamp = fields[6];         // 数据采集时间

                        // 输出解析后的数据
                        System.out.println("设备编码: " + deviceId);
                        System.out.println("数据类型: " + dataType);
                        System.out.println("监控位置: " + location);
                        System.out.println("数值: " + value);
                        System.out.println("单位: " + unit);
                        System.out.println("状态: " + status);
                        System.out.println("采集时间: " + timestamp);
                        System.out.println("--------------------------");
                    } else {
                        System.out.println("格式错误或数据缺失: " + entry);
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}